package com.dhecp.project.logstics.service;

import com.dhecp.common.core.domain.AjaxResult;
import com.dhecp.project.logstics.domain.FbaBox;
import com.dhecp.project.logstics.domain.FbaBoxDetail;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 头程计划单  业务层
 * @Author fxz
 * @Date 2022/9/23
 */
public interface FbaBoxService {
    /**
     * 查询头程计划单
     * @param params
     * @Author: fxz
     * @date: 2022/9/22
     */
    List<FbaBox> queryList(Map<String, Object> params) throws Exception;
    
    List<FbaBoxDetail> querySonList(Map<String, Object> params) throws Exception;
    /**
     * 查询单个实体
     * @param params
     * @Author: fxz
     * @date: 2022/9/22
     */
    FbaBox queryByBid(String bid);

    /**
     * 新增头程计划单
     * @author fxz
     * @date: 2022-09-22 10:53
     */
    AjaxResult insertFbaBox(Map<String, Object> params);

    /**
    *@Description: 查询指定单nid的首记录
    *@Param: [params]
    *@return: com.dhecp.project.purchase.domain.PurchasePlan
    *@Author: hlf
    *@date: 2022-08-15 15:41
    */
    FbaBox queryFirstRecord(Map<String, Object> params) throws Exception;

    AjaxResult saveData(Map<String, Object> params);

    AjaxResult saveDataInbound(Map<String, Object> params);

    /**
     *@Description: 流转  —— 添加流程任务、修改流程状态及生效标志
     *@Param: infoMap 必要参数：非网格字段（包括头部、底部所有显示和隐藏的字段）
     *@Param: infoItems 必要参数：对应实体类的json格式字符串（仅需 guid）
     *@return: com.dhecp.common.core.domain.AjaxResult
     *@Author: hlf
     *@date: 2022-05-09 9:42
     */
    AjaxResult updateFlowGo(Map<String, Object> params);

    /**
     * 打印发票清单
     * @param params
     * @return
     */
    AjaxResult printList(Map<String, Object> params);

    /**
     * 是否是自税
     * @param params
     * @return
     */
    AjaxResult selfTax(Map<String, Object> params);

    /**
     *@Description: 退回  —— 添加流程任务、修改流程状态及生效标志
     *@Param: infoMap 必要参数：非网格字段（包括头部、底部所有显示和隐藏的字段）
     *@Param: infoItems 必要参数：对应实体类的json格式字符串（仅需 guid）
     *@return: com.dhecp.common.core.domain.AjaxResult
     *@Author: hlf
     *@date: 2022-05-09 9:44
     */
    AjaxResult updateFlowBack(Map<String, Object> params);

    /**
     *@Description: 装箱回退
     *@Param: guid 唯一标识
     *@return: com.dhecp.common.core.domain.AjaxResult
     *@Author: hlf
     *@date: 2022-08-17 14:56
     */
    AjaxResult rollbackState(Map<String, Object> params);

    /**
     *@Description: 装箱导入追踪编号
     *@Param: guid 唯一标识
     *@return: com.dhecp.common.core.domain.AjaxResult
     *@Author: hlf
     *@date: 2022-08-17 14:56
     */
    AjaxResult importData(Map<String, Object> params);

    /**
     * ex表格导入多个FBA设置状态为标记发货
     * @param params 必要参数：对应实体类的json格式字符串（导入的字段用户内容）
     * @return
     * @throws Exception
     * @author fxz
     */
    AjaxResult batchDelivery(Map<String, Object> params);

    /**
     * 贴标人装箱人导入
     * @param params
     * @return
     */
    AjaxResult personnelImport(Map<String, Object> params);

    /**
     * 修改仓库标识
     * @param params
     * @return
     */
    AjaxResult updateDestinationFulfillmentCenter(Map<String, Object> params);

    /**
     * 标记发货
     * @param params
     * @return
     */
    AjaxResult isShipments(Map<String, Object> params);

    /**
     * 完成单审核
     * @param params
     * @return
     */
    AjaxResult zxwcShbtn(Map<String, Object> params);


    /**
     * 头程分箱
     * @param params
     * @return
     */
    AjaxResult binningEditpost(Map<String, Object> params) throws Exception;
}
